#include "Widget.h"
#include <QPushButton>
#include <QtDebug>
#include <QLabel> // 文本控件
#include <QSlider> // 滑动条控件
#include <QProgressBar> // 进度条控件
#include <QTextEdit> // 文本编辑框控件


Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    this->setWindowTitle("flybird");
    this->resize(400,300);
    auto button = new QPushButton("close",this);
    auto button2 = new QPushButton("max",this);
    auto button3 = new QPushButton("min",this);
    auto button4 = new QPushButton("Normal",this);

    button->setFixedSize(50,50);
    button2->setFixedSize(50,50);
    button3->setFixedSize(50,50);
    button4->setFixedSize(50,50);

    button->move(0,250);
    button2->move(350,250);
    button3->move(150,250);
    button4->move(200,250);


    connect(button, &QPushButton::clicked, this, &Widget::close);
    connect(button2, &QPushButton::clicked,this, &Widget::showMaximized);
    connect(button3, &QPushButton::clicked,this, &Widget::showMinimized);
    connect(button4, &QPushButton::clicked,this, &Widget::showNormal);

    // 鼠标按下抬起信号
    auto b1 = new QPushButton("pressed(按下)",this);

    b1->setFixedSize(100,30);
    b1->move(0,0);

    // 按下时直接调用Lamda表达式函数
    connect(b1,&QPushButton::pressed,[](){qDebug() << "pressed"; });
    connect(b1,&QPushButton::released,[](){qDebug() << "released"; });

    // 文本控件:
    auto label = new QLabel("I am label!", this);
    label->move(0,30);
    label->setFont(QFont("楷体",10,10,0));

    // 滑动条控件
    QSlider* slider = new QSlider;
    slider->setParent(this);
    slider->move(250,30);
    slider->setValue(0);
    slider->setMaximum(100);
    // 通过滑动滑动条改变字体大小
    connect(slider, &QSlider::valueChanged, [label](int _value){
        label->setFont(QFont("楷体",_value,10,0));
        label->resize(400,_value+100);
    });


    // 进度条
    QProgressBar* proBar = new QProgressBar;
    proBar->setParent(this);
    proBar->move(0,200);
    proBar->resize(this->size().width(),20);
    //proBar->setValue(50);
    // 通过滑动条改变进度条
    connect(slider,&QSlider::valueChanged,[proBar](int _value){
       proBar->setValue(_value);
    });

    // 文本编辑框
    QTextEdit* edit = new QTextEdit;
    edit->setParent(this);
    edit->move(0,150);
    edit->resize(200,30);
    // 可以以用setFontxxx 的接口改字体，接口比较丰富
}

Widget::~Widget()
{
}

